const Path = require('path');

console.log('process.argv', process.argv);
// process.argv [node程序在的位置, 执行文件所在的位置,传入的第一个参数,传入的第二个参数]
// [
//   'C:\\Program Files\\nodejs\\node.exe',
//   'D:\\myProject\\node-demo\\apps\\envConfig\\config\\resetConfig.js',
//   'development',
//   'dev'
// ]
const env = process.argv[3]; // 规定业务环境环境在命令第4个参数
const site = process.argv[4]; // 规定业务环境环境在命令第4个参数
const nodeEnv = process.argv[2]; // 规定node环境环境在命令第3个参数

process.env.ENV = env;
process.env.NEXT_PUBLIC_SITE_MOCK = site;
process.env.NODE_ENV = nodeEnv;

function changeJson(filePath, newData, callback) {
  const fs = require('fs');
  // fs.readFile(filePath, 'utf-8', (err, file) => {
  //   if (err) {
  //     throw err;
  //   }
  //   /** 转成json字符串并格式化 **/
  //   const newFile = JSON.stringify(newData, null, 3);

  //   fs.writeFile(filePath, newFile, 'utf-8', (error) => {
  //     if (err) {
  //       throw error;
  //     }
  //     callback(!err);
  //   });
  // });
  /** 转成json字符串并格式化 **/
  const newFile = JSON.stringify(newData, null, 3);

  fs.writeFile(filePath, newFile, 'utf-8', (err) => {
    if (err) {
      throw err;
    }
    callback(!err);
  });
}

const envInfo = require(`./index.js`);
changeJson(Path.resolve(__dirname, '.env.json'), envInfo, function (success) {
  console.log('resetConfig-env', require('./.env.json'));
});
